#pragma once

#include "MultiEMap.h"

struct WndInfo 
{
	int nWndIndex;
	CMultiEMap* pWnd;
};

class CMultiMapManager
{
	typedef map<HWND, WndInfo> CMultiMap;

public:
	CMultiMapManager(void);
	~CMultiMapManager(void);

public:
	inline static CMultiMapManager& GetInstance(){
		static CMultiMapManager Inst;
		return Inst;
	}

	void RegisterWnd(HWND hWnd, DWORD nWndIndex, CMultiEMap* pWnd);
	void SetActiveWnd(WndInfo* pWndInfo);
	void RestoreWndStyle(WndInfo* pWndInfo);
	WndInfo* GetWnd(HWND hWnd);
	void SwapWndIndex(int nSrcIndex, int nTargetIndex);

private:
	CMultiMap m_multiMap;
};


#define theMultiMapManager CMultiMapManager::GetInstance()
